The invention relates generally to the transmission of digital signals, and more particularly to the transmission of digital signals in systems containing digital video and audio signals conforming to packet-based multiplexed communication standards.
The International Organization for Standardization (ISO) recently adopted a standard (ISO/IEC 13818-1) that addresses the combining of one or more "elementary streams" of video and audio, as well as other data, into single or multiple streams suitable for storage or transmission. The ISO/IEC 13818-1 standard, hereinafter referred to as the "MPEG2 Systems" standard, is described in detail in the ISO draft document "Generic Coding of Moving Pictures and Associated Audio", ISO/IEC JTC1/SC29/WG11 N0801 (Nov. 13, 1994), which is incorporated herein in its entirety by reference. The MPEG2 Systems standard specifies syntactical and semantic rules for system level coding of the elementary streams using packet-oriented multiplexes. The MPEG2 Systems standard defines an individual coded video, audio or other coded bitstream as an "elementary stream". The contents of an elementary stream may be broken into a sequence of discrete units, in which case the elementary stream is structured as a Packetized Elementary Stream (PES). The individual units, or packets, are known as PES packets, which can be of large and variable size. The MPEG2 Systems standard defines generic structures for PES packet formats and specifies particular rules for creating PESs from digital video and audio elementary streams. Allowance is made for creating PESs for private data formats, i.e., data formats not defined by the MPEG2 Systems standard.
The MPEG2 Systems standard defines two methods of creating a multiplex of PESs. In a Program Stream (PS), all components in the multiplex are assumed to belong to a single "Program", that is, a collection of elementary streams which may sensibly be presented as a unity to a user, all components being referenced to a common time base, together with certain coordinating control information. PES packets from component PESs are multiplexed by PES packet. The PS is rigidly structured so that at most one PES of a specified format may carry a private data elementary stream.
In a Transport Stream (TS), the components of the multiplex may belong to many programs. Each PES is assigned a "packet identifier" (PID). The PES packets are broken into small, fixed-size units called transport packets, which may be multiplexed with transport packets from other PESs. Coordination and control of the PESs and the Programs in the TS is managed via control data called Program Specific Information (PSI). PSI is structured according to a section format which differs from and is incompatible with the PES packet. PSI is distributed via several PIDs, including a base PID (PID 0), used to carry a Program Association Table (PAT) listing all Programs in the TS, and a PID associated with each Program which carries a Program Map Table (PMT) describing the components of the Program. PSI syntax also permits the use of PIDs to transport private data in formats compatible with PSI, or in totally private formats. Other private control information may include Entitlement Control Messages (ECMs) or Entitlement Management Messages (EMMs) used for encryption and authorization, generally referred to as Conditional Access Information. In addition, the Digital Video Broadcasting (DVB) committee has defined a similar structure for transport of Service Information (SI).
Private data signals can cover a wide variety of purposes, including signals strictly related to broadcast television applications, such as would be carried in the Vertical Blanking Interval (VBI) of an analog television signal; signals carrying services ancillary to broadcast television applications, such as Electronic Program Guides (EPG); and signals such as are used for transmitting voice and/or data in conventional telecommunications networks, in both asynchronous and synchronous modes.
It is apparent that the MPEG2 structures suffer from certain difficulties. One class of difficulty emerges when one considers the possibility of building modular encoders and decoders that could be applicable to both TSs and PSs.
In practice, however, there are significant restrictions on such an approach. In the first instance, the treatment of control data is very different between the PS and the TS. While the control data used to describe a Program in a PS is in a PES format, the control data used in a TS is in an incompatible section format. Thus, the interfaces between modules must necessarily be different for PS and TS encoders. This difficulty also prevents storage of a Program in a form suitable for direct inclusion in a TS on a device adapted to the PS format.
Another significant concern is that the PS structure imposes restrictions on the types and numbers of program elements, or components, which may be part of a Program. Such restrictions do not exist in the TS structure. As an example, a Program may contain multiple streams of subtitling information that are encoded according to International Radio Consultative Committee (CCIR) System B Teletext specifications. Each stream of subtitling information may be encoded as a PES according to the procedures defined by the Digital Video Broadcasting (DVB) committee in DVB TM1398 "DVB Subtitling System Working Draft 1.0". Within the TS structure, each such PES of subtitling information may be assigned a separate PID and may be associated with the Program. However, the PES structure is a Private Data PES, and the PS specifications only allow one such PES to be associated with a Program.
A second class of difficulty emerges when one considers the variations in the number of components that may be associated with a Program, and the variation in their data rates. The Main Profile Main Level of the MPEG2 Systems standard permits video elementary streams to be transmitted at rates of between 1 and 15 Mbps. A TS may include multiple such streams. A decoding device which selects such streams from the TS by PID will therefore typically be implemented in high speed field-programmable gate arrays (FPGAs) or application-specific integrated circuits (ASICs) in which the PID is held in a register for comparison purposes. The number of PIDs which may be processed simultaneously therefore becomes a controlling cost element in the design of such FPGAs or ASICs. However, since each PID corresponds to a single PES, the same register is used regardless of whether the component selected is a 15 Mbps video stream or a 1200 bps asynchronous data component. The MPEG2 Systems standard scheme of making each PID carry a single component can therefore induce significant inefficiencies.
A third class of difficulty emerges when one considers certain classes of application for which addressability is desirable. For example, it may be desired to address certain streams, including video and audio streams, to a decoder or a group of decoders. This need may exist without regard to the capabilities that may exist for such services in the underlying transmission media, for example because no such facilities exist in the medium. For a further example, it may be desired to transmit data signals such as datagrams conforming to the Internet Protocol (IP) in a private data channel over an MPEG2 Transport Stream. However, a decoder capable of accepting such datagrams must first be provided with an IP address. In other broadcast systems faced with this problem, such as Ethernet, the decoder is provided with a native address by a manufacturer which may be bound to an Internet address by the systems administrator using protocols such as the Reverse Address Resolution Protocol (RARP). Such an approach is not possible in MPEG2 Systems because no such native address scheme is defined for MPEG2 decoders.